package task11;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;

/**
 * Create by IntelliJ IDEA
 *
 * @author: jsonor
 * @date-Time: 2018/4/27 8:09
 * @description:HashMap集合添加元素、遍历
 */
public class Take01 {

  public static void main(String[] args) {
    /*1、创建HashMap对象
    * 2、添加对象
    * 3、遍历（2种方法）*/
    HashMap<Integer,String> stringHashMap=new HashMap<Integer,String>();
    /*HashMap键不能重复，值可以重复*/
    stringHashMap.put(1,"张三");
    stringHashMap.put(1,"里斯");
    stringHashMap.put(2,"王五");
    stringHashMap.put(3,"王五");
    /* 遍历方式1：键找值
      *  1）获取所有键的集合
      *  2）遍历键的集合,得到每一个键
      *  3）根据键到集合中去找值 */
    //得到的是所有键集合的迭代器
    Iterator iterator=stringHashMap.keySet().iterator();
    while (iterator.hasNext()){
      //循环的到每一个键
      Integer key=(Integer) iterator.next();
      //根据键来获取值
      String value=stringHashMap.get(key);
      System.out.println(key+"："+value);
    }



    /*遍历方式2：键值对对象找键和值（集合中元素多的时候，效果更高）
      *  1）获取所有的键值对对象的集合
      *  2）遍历键值对对象的集合，获取每一个键值对对象
      *  3）根据键值对对象去获取键和值*/

    Iterator entryIterator=stringHashMap.entrySet().iterator();
    while(entryIterator.hasNext()){
      //循环得到的是每一对键值对对象
      Entry<Integer,String> entry= (Entry<Integer, String>) entryIterator.next();
      Integer key=entry.getKey();
      String value=entry.getValue();
      System.out.println(key+"--"+value);
    }
  }

}
